package com.fast.manager.base.repository;

import org.apache.ibatis.annotations.Param;

import com.fast.commons.repository.BaseMapper;
import com.fast.manager.base.domain.User;

public interface UserMapper extends BaseMapper<User> {
	
	/**
	 * 根据账号Account查找记录
	 * @param account
	 * @return
	 */
	public User findByAccount(@Param("account") String account) ;
	
	/**
	 * 根据账号Account获取User对象，并关联角色
	 * @param account
	 * @return
	 */
	public User findByAccountLinkRole(@Param("account") String account) ;

	/**
	 * 根据邮箱地址查找记录
	 * @param email
	 * @return
	 */
	public User findByEmail(@Param("email") String email);
	
	/**
	 * 密码找回，根据数据签名进行查询
	 * @param signature
	 * @return
	 */
	public User findBySignature(@Param("signature") String signature) ;
	
	/**
	 * 根据ID查找记录
	 * @param id
	 * @return
	 */
	public User findById(@Param("id") Long id) ;
	
	/**
	 * 密码找回-->修改密码
	 * @param user
	 */
	public void updateByIforgot(User user) ;
	
	/**
	 * 批量调换部门
	 * @param company_id
	 * @param dept_id
	 * @param user_ids
	 */
	public void changeDeptBatch(@Param("company_id") Long company_id, @Param("dept_id") Long dept_id, @Param("user_ids") String[] user_ids);
}